#ifndef MODELPART_H
#define MODELPART_H

#include <string>

#include "ModelBoundingVolume.h"
#include "../Log.h"

class ModelBoundingVolume;

class Modelpart
{
public:
    Modelpart();
    Modelpart(Log *log);
    Modelpart(Log *log, std::string name);
    ~Modelpart();

    void SetModelTransformationMatrix(const aiMatrix4x4 &transf);
    void SetDisplayListID(unsigned int id);
    void SetName(const std::string &name);
    void SetBoundingVolume(ModelBoundingVolume *bv);

    const aiMatrix4x4 &GetModelTransformationMatrix();
    unsigned int GetDisplayListID();
    const std::string &GetName();
    ModelBoundingVolume *GetBoundingVolume();

    void Draw();

private:
    Log *errLog;

    aiMatrix4x4 modelTransformation;
    unsigned int displayListID;
    std::string name;
    ModelBoundingVolume *boundingVolume;

};

#endif //MODELPART_H
